Automating and Validating Program Annotations
نویسندگان
چکیده
Program annotations help to catch errors, improve program understanding, and specify invariants. Adding annotations, however, is often a manual, laborious, tedious, and error prone process especially when programs are large. We offer a novel approach for automating a part of this process. Developers first specify an initial set of annotations for a few variables and types. Our LEearning ANnnotations (Lean) system combines these annotations with run-time monitoring, program analysis, and machine-learning approaches to discover and validate these annotations on unannotated variables. We evaluate our prototype implementation on open-source software projects and our results suggest that a modest set of annotations capture many program variables, and Lean can generalize from a small set of annotated variables to annotate many other variables. After users annotate approximately 6% of the program variables and types, Lean correctly annotates an additional 69% of variables in the best case, 47% in the average, and 12% in the worst case.
منابع مشابه
Automating and Validating Semantic Annotations
Use-case diagrams (UCDs) are widely used to describe requirements and desired functionality of software products. However, UCDs are loosely linked to the source code, and there are no approaches to maintain the correspondence between program variable and types (or program entities) and elements of UCDs. We offer a novel approach for automating a part of the process of annotating program entitie...
متن کاملAutomating Selective Dynamic Compilation
Automating Selective Dynamic Compilation by Markus Ulrich Mock Co-Chairs of Supervisory Committee: Professor Susan Eggers Department of Computer Science & Engineering Professor Craig Chambers Department of Computer Science & Engineering Run-time specialization of programs can potentially improve execution time by exploiting the (semi-) invariance of values. Several research prototypes have been...
متن کاملBinding-Time Analysis for MetaML via Type Inference and Constraint Solving
The two predominant program specialization techniques, partial evaluation and staged programming, take opposite approaches to automating binding-time analysis (BTA). Despite their common goal, there are no systems integrating both methods. Programmers must choose between the precision of manually placing staging annotations and the convenience of automating such annotation. We present an automa...
متن کاملThe Effects of Multimedia Annotations on Iranian EFL Learners’ L2 Vocabulary Learning
In our modern technological world, Computer-Assisted Language learning (CALL) is a new realm towards learning a language in general, and learning L2 vocabulary in particular. It is assumed that the use of multimedia annotations promotes language learners’ vocabulary acquisition. Therefore, this study set out to investigate the effects of different multimedia annotations (still picture annotatio...
متن کاملValidating of Applied Model for the Implementation of the School Management Excellence Program
Abstract Purpose: The aim of the present study is to validate the applied model for the school management excellence program implementation. Methodology: This study was a correlation and survey methods. All 20 middle and high schools located in districts 1 and 2 of Ardabil city, which have been the implementers of the excellence program during the last two years, were selected and their huma...
متن کامل